home *** CD-ROM | disk | FTP | other *** search
/ Workbench Design / WB Collection.iso / workbench werkzeuge / guis für programme / xanim guis / xanim / xanim8 / xanim.hlp < prev    next >
Text File  |  1996-04-07  |  32KB  |  747 lines

  1. 1 xanim
  2. XAnim Beta Audio Rev 2.69.7.8
  3.     02May95 
  4.     Mark Podlipec - podlipec@wellfleet.com
  5. http://www.portal.com/~podlipec/home.html  "The XAnim Home Page"
  6.  
  7. xanim - multiformat animation viewer for X
  8.  
  9. xanim [+V num][+A aopts][+C copts][+G gopts][+M mopts][+S sopts]
  10.       [+Z zopts][+ opts] animfile [ [+ opts][animfile] ... ]
  11.  
  12.   NOTE: since VMS is case insensitve, all options to xanim must be
  13.   enclosed in double quotes in order for them to be proper recognized.
  14.   Example:
  15.         xanim "+bCn" anim1 anim2
  16. 2 DESCRIPTION
  17. XAnim is a program that can display animations of various formats on systems
  18. running X11.  XAnim currently supports the following animation types:
  19.       +  FLI animations.
  20.       +  FLC animations.
  21.       +  IFF animations.  The  following  features  are  sup-
  22.          ported:
  23.            -> Compressions 3,5,7,J(movies) and l(small L).
  24.            -> Color cycling during single images and anims.
  25.            -> Display Modes: depth 1-8, EHB, HAM and HAM8.
  26.       +  GIF87a and GIF89a files.
  27.            -> single and multiple images supported.
  28.            -> GIF89a animation extensions supported.
  29.       +  GIF89a animation extension support.
  30.       +  a kludgy text file listing gifs and  what  order  to
  31.          show them in.
  32.       +  DL animations. Formats 1, 2 and 3. TEMPORARILY DISABLED.
  33.       +  Amiga PFX(PageFlipper Plus F/X) animations. DISABLED TEMPORARILY.
  34.       +  Amiga MovieSetter animations(For those Eric Schwartz
  35.          fans).
  36.       +  Utah Raster Toolkit RLE images and anims.
  37.       +  AVI animations. Currently supported are
  38.            ->*IBM Ultimotion     (ULTI) depth 16.
  39.                -> JPEG               (JPEG) depth 24.
  40.                -> Motion JPEG        (MJPG) depth 24.
  41.                -> Intergraph JPEG    (IJPG) depth 24.
  42.            -> Microsoft Video 1  (CRAM) depth 8 and 16.
  43.            -> SuperMac Cinepak   (CVID) depth 24.
  44.            -> Uncompressed       (RGB ) depth 8.
  45.            -> Uncompressed       (RGB ) depth 24.
  46.            -> Run length encoded (RLE8) depth 8.
  47.            -> Editable MPEG      (XMPG) depth 24.
  48.       +  Quicktime Animations.  The  following  features  are
  49.          supported:
  50.            -> Uncompressed     (RAW ) depth 4,8,16,24,24+ and GRAY 4,8.
  51.            -> Apple Graphics   (RLE ) depth 1,8,16 and 24 and GRAY 8.
  52.            -> Apple Animation  (SMC ) depth 8 and GRAY.
  53.            -> Apple Video      (RPZA) depth 16.
  54.            -> SuperMac Cinepak (CVID) depth 24 and GRAY 8.
  55.            -> Component Video  (YUV2) depth 24.
  56.            -> Photo JPEG       (JPEG) depth 8 and 24.
  57.            -> Supports multiple video trak's.
  58.            -> Supports animations with multiple codecs.
  59.            -> Supports single-fork and separate .rsrc and .data forks.
  60.       +  JFIF images. NOTE: use XV for single images. This is more
  61.          for animation of a sequence of JPEG images.
  62.           +  MPEG animations. Currently only Type  I  Frames  are
  63.              displayed.  Type  B  and Type P frames are currently
  64.              ignored, but will be added in future revs.
  65.       +  WAV audio files may have their sound added to any animation
  66.          type that doesn't already have audio, by specifying the .wav
  67.          file after the animation file on the command line. Currently
  68.          only the PCM audio codec is supported.
  69.       +  any combination of the above  on  the  same  command
  70.          line.
  71.  
  72. ---------------------------------------------------------------------------
  73. * The following copyright applies to all Ultimotion segments of the code:
  74.  
  75.   "Copyright International Business Machines Corporation 1994, All rights
  76.    reserved. This product uses Ultimotion(tm) IBM video technology."
  77. ---------------------------------------------------------------------------
  78.  
  79.      XAnim also provides various options that allow the  user  to
  80.      alter colormaps, playback speeds, looping modes and can pro-
  81.      vide on-the-fly scaling of animations with the mouse.
  82. 2 OPTIONS
  83. A "+" will generally turn an option on and a "-" will turn an option off.
  84. This can be reversed at compile time. (see  xanim_config.h ).
  85.  
  86. In each SubMenu, the options can be run together with no intervening spaces.
  87. In the list of SubMenu options presented below, the first letter given is
  88. the letter that specifies the SubMenu and should NOT be repeated  if several
  89. SubMenu options are to be run together. 
  90.  
  91. For example, "+Cn +Cs10 +CF4" can also be written as "+Cns10F4" or
  92. "+CF4s10n".
  93.  
  94. A "+" or a "-" within a SubMenu will be an exit from that submenu. Options
  95. will affect all animations following the invocation of that option. Some
  96. options may be changed in between animations without affecting previous
  97. animations.
  98.  
  99. In the following sections, a "num" represents an integer number and a "fnum"
  100. represents a floating point number. If a floating point number is of an
  101. integer amount, the "." need not be specified. There should be no spaces
  102. between the option and the numbers.
  103.  
  104.   NOTE: since VMS is case insensitve, all options to xanim must be
  105.   enclosed in double quotes in order for them to be proper recognized.
  106.   Example:
  107.         xanim "+bCn" anim1 anim2
  108. 3 aopts-Audio_Options
  109.       +Ae        Audio Enable. XAnim will ignore audio data if
  110.             this option is not used.
  111.  
  112.       +Ak        This option allows XAnim to skip video frames
  113.             in order to help keep video in sync with audio.
  114.             default is on.
  115.  
  116.       +As"fnum"    Scale Audio playback speed by "fnum". Only the
  117.             range 0.125 to 8.00 is allowed.
  118.             NOTE: CURRENTLY VIDEO DOESN'T SCALE WITH AUDIO.
  119.  
  120.       +Ap"num"    This turns a hardware specific Audio port on or off.
  121.                Port 0 - main speaker (on  by default)
  122.                Port 1 - headphones   (off by default)
  123.                Port 2 - line out     (off by default)
  124.  
  125.       +Av"num"    Sets the inital Audio Volume(0-100) with 0
  126.             the lowest. default is 40.
  127. 3 copts-Color_Options
  128.       +C1        Create a colormap from the  first  frame  of  a
  129.             TrueColor  anim  and  then  remap the remaining
  130.             frames to this colormap. This  can  potentially
  131.             add  significant time to the startup of an ani-
  132.             mation but usually results  in  better  colors.
  133.             The  animation  needs  to  be buffered for this
  134.             option to work.  Not  valid  for  TrueColor  or
  135.             DirectColor displays(nor is it needed).
  136.  
  137.       +C3        Convert TrueColor  anims  to  332(StaticColor).
  138.             TrueColor  anims  are  animations  that provide
  139.             separate RGB info for each pixel,  rather  than
  140.             each  pixel being an index into a global color-
  141.             map. AVI(16bit CRAM), QT(RPZA and RLE depth  16
  142.             and  24)  and URT RLE 24 bit anims are examples
  143.             of TrueColor anims. This option is ignored  for
  144.             TrueColor or DirectColor displays.
  145.  
  146.       +CA         Create  a  colormap  from  each  frame   of   a
  147.             TrueColor  anim.  This  can  be  useful  if the
  148.             colors radically change during  the  course  of
  149.             the  animation.  This can take a VERY,VERY long
  150.             time at start up. Animation must  be  buffered.
  151.             This   option   is  ignored  for  TrueColor  or
  152.             DirectColor displays.
  153.  
  154.       +Ca         Remap all images to  single  new  cmap  created
  155.             from all of the colormaps.
  156.  
  157.       +Cd         Use Floyd-Steinberg  dithering  if  needed  for
  158.             non-monochrome  displays.   This  will  cause a
  159.             reduction in playback speed.
  160.  
  161.       +Cf         Forcibly remap to all  frames  to  1st  frame's
  162.             cmap.
  163.  
  164.       +CF0          Turns off CF4 option.
  165.  
  166.       +CF4          This option samples the colors of true color
  167.             animations ahead of time and forms a color
  168.             lookup table.  Beats the just truncating to a
  169.             RGB 332 color table and IMHO beats dithering.
  170.             See the +s option below(also in copts submenu).
  171.             Currently ONLY Work with unbuffered animations
  172.  
  173.       +Cg         Convert TrueColor anims  to  gray  scale.  This
  174.             option is ignored for TrueColor and DirectColor
  175.             displays.
  176.  
  177.       +Ch         Use histogram to aid in color  reduction.  His-
  178.             trogramming  is  only  done  on frames that are
  179.             buffered.
  180.  
  181.       +Cm         This option is currently needed if you want  to
  182.             dither  TrueColor anims to a 332 colormap. Ani-
  183.             mation must be buffered.  Typically  +bC3dm  is
  184.             the  option  to  use. This can take a VERY long
  185.             time at start up.
  186.  
  187.       +Cn         Don't create new colormap but instead  allocate
  188.             colors from the X11 Display's default cmap.
  189.  
  190.       +Cs"num"    This is the number of frames the +CF4 option looks
  191.             at ahead of time. More frames potentially yields
  192.             better colors results, but takes more time at
  193.             start up.  default is 5.
  194. 3 gopts-Gamma_Options
  195.       +Ga"fnum"    Set gamma of animation to be displayed.
  196.  
  197.       +Gd"fnum"    Set gamma of display. 1.0 is no change. gamma's
  198.             greater  than 1.0 typically brighten the anima-
  199.             tion.
  200. 3 mopts-Median_Cut_Quantization_Options
  201.       +Ma        compute box color from average of box.
  202.  
  203.       +Mc        compute box color as center of box.
  204.  
  205.       +Mb"num"    Truncate rgb to "num" bits before quantizing.
  206. 3 sopts-Scaling_Options
  207.       +Si        Half the  height  of  IFF  anims  if  they  are
  208.             interlaced.(Not  completely  reliable since not
  209.             all IFF anims correctly identify themselves  as
  210.             interlaced).
  211.  
  212.       +Sn        Prevents X11  window  from  resizing  to  match
  213.             animations's size.
  214.  
  215.       +Sr        Allow user to  resize  animation  on  the  fly.
  216.             Enlarging an animation can greatly reduce play-
  217.             back speed depending on the power of the cpu.
  218.  
  219.       +Ss"fnum"    Scale the size  of  animation  by  "fnum"  before
  220.             displaying.
  221.  
  222.       +Sh"fnum"    Scale the horizontal size of the  animation  by
  223.             "fnum" before displaying.
  224.  
  225.       +Sv"fnum"    Scale the vertical size  of  the  animation  by
  226.             "fnum" before displaying.
  227.  
  228.       +Sx"num"    Scale the animation to have  width  "num"  before
  229.             displaying.
  230.  
  231.       +Sy"num"    Scale the animation to have height  "num"  before
  232.             displaying.
  233.  
  234.       +Sc        Copy display scaling factors to display buffer-
  235.             ing factors.
  236.  
  237.       +SS"fnum"    Scale the size of the animation by "fnum"  before
  238.             buffering it.
  239.  
  240.       +SH"fnum"    Scale the horizontal size of the  animation  by
  241.             "fnum" before buffering it.
  242.  
  243.       +SV"fnum"    Scale the vertical size  of  the  animation  by
  244.             "fnum" before buffering it.
  245.  
  246.       +SX"num"    Scale the animation to have  width  "num"  before
  247.             buffering it.
  248.  
  249.       +SY"num"    Scale the animation to have height  "num"  before
  250.             buffering it.
  251.  
  252.       +SC        Copy buffer scaling factors to display  scaling
  253.             factors.
  254. 3 zopts-Special_Options    
  255.       +Ze        XAnim will exit after playing  through  command
  256.             line once.
  257.  
  258.       +Zp"num"    XAnim pause at frame "num" and then wait for user
  259.             input.  Several  pauses  may be specified. Each
  260.             group of pauses will only affect the  animation
  261.             immediately following them on the command line.
  262.             Pauses will occur at least once.
  263.  
  264.       +Zr        This option enables the Remote Control  Window.
  265.             This  overrides  the  default  condition set in
  266.             xanim_config.h. Remote Control support must  be
  267.             compiled into XAnim for this to work.
  268. 3 Normal_Options
  269.       +b        Uncompress and buffer images before displaying.
  270.             This only applies to AVI,QT, IFF,FLI,FLC anima-
  271.             tions. The rest(GIF87a,GIF89a,DL,PFX  and  RLE)
  272.             are currently always uncompressed and buffered.
  273.             This is cleared by the +f option.
  274.  
  275.       +B        Used X11 Shared Memory(if present)for unbuffered
  276.             animations only.(This is mutually exclusive with
  277.             +b above).
  278.  
  279.       +f        Don't load anim into memory, but read each sec-
  280.             tion  only  when needed. This is supported only
  281.             for AVI,QT,IFF,FLI  and  FLC  animations.  This
  282.             option  is cleared by the +b option. This saves
  283.             memory at the cost of speed.
  284.  
  285.       +c        let xanim know that iff anim  is  a  nonlooping
  286.             one.
  287.  
  288.       +d"num"    debug switch. "num" can be from 0(off) to 5(most)
  289.             for level of detail.
  290.  
  291.       +F        Floyd-Steinberg dithering when needed(monochrome
  292.             and Cinepak Video compressions only)
  293.  
  294.       +j"num"    "num"  is  the  number  of  milliseconds  between
  295.             frames.  if  0  then  the time specified in the
  296.             animation is used for timing purposes.
  297.  
  298.       +l"num"    loop animation "num" number of times before  mov-
  299.             ing on to next animation.
  300.  
  301.       +lp"num"    ping-pong animation "num" number of times  before
  302.             moving on to next animation.
  303.  
  304.       +N        don't display images. Useful for benchmarking.
  305.  
  306.       +o        turns    on    certain    optimizations.    See
  307.             xanim.readme.
  308.  
  309.       +p        Use Pixmap instead of Image in X11. This option
  310.             has    no    effect   if   the   animation   is
  311.             buffered(either  by  default  or  with  the  +b
  312.             option).
  313.  
  314.       +q        Quiet mode. Doesn't print header to output tty.
  315.  
  316.       +r        Allow color cycling for IFF single images.
  317.  
  318.       +R        Allow color cycling  for  IFF  anims.  (default
  319.             should be off)
  320.  
  321.       +T0        Title option 0. Title is just XAnim.
  322.  
  323.       +T1        Title option 1. Title  is  current  anim  name.
  324.             When  anim is stopped, the current frame number
  325.             is included.
  326.  
  327.       +T2        Title option 2. Title is current anim name  and
  328.             current frame number.
  329.  
  330.       +v        Verbose mode. Gives some information about ani-
  331.             mation such as size, number of frames, etc.
  332.  
  333.       +V"num"    Select X11 Visual to use when displaying anima-
  334.             tion.  The  "num"  is  obtained  by  using the +X
  335.             option of xanim.
  336.  
  337.       +Vclass    Select the best X11 Visual of Class class  when
  338.             displaying  the  animation. class can be anyone
  339.             of the following strings and is  case  insensi-
  340.             tive. (ie StaTicGraY is same as staticgray).
  341.  
  342.             staticgray    Select best StaticGray Visual.
  343.             grayscale     Select best GrayScale Visual.
  344.             staticcolor   Select best StaticColor Visual.
  345.             pseudocolor   Select best PseudoColor Visual.
  346.             truecolor     Select best TrueColor Visual.
  347.             directcolor   Select best DirectColor Visual.
  348.  
  349.       +X        X11 verbose mode. Display information about the
  350.             support X11 visuals.
  351. 2 WINDOW_COMMANDS
  352.      Once the animation is up and running there are various  com-
  353.      mands  that  can  be entered into that animation window from
  354.      the keyboard.
  355.  
  356.      q         quit.
  357.  
  358.      Q         Quit.
  359.  
  360.      g         Stop color cycling.
  361.  
  362.      r         Restore original Colors(useful after g).
  363.  
  364.      w         Restore original window size(useful after resizing).
  365.  
  366.      z         This pops up or removes the Remote Control Window.
  367.                Remote Control support must be compiled into XAnim
  368.                for this to work.
  369.  
  370.      <space>   Toggle. starts/stops animation.
  371.  
  372.      ,         Single step back one frame.
  373.  
  374.      .         Single step forward one frame.
  375.  
  376.      <         Go back to start of previous anim.
  377.  
  378.      >         Go forward to start of next anim.
  379.  
  380.      m         Single step back one frame staying within anim.
  381.  
  382.      /         Single step forward one frame staying within anim.
  383.  
  384.      -         Increase animation playback speed.
  385.  
  386.      =         Decrease animation playback speed.
  387.  
  388.      0         Reset animation playback speed to original values.
  389.  
  390. 3 AUDIO_RELATED_WINDOW_COMMANDS
  391.      1           Decrement volume by 10.
  392.  
  393.      2           Decrement volume by 1.
  394.  
  395.      3           Increment volume by 1.
  396.  
  397.      4           Increment volume by 10.
  398.  
  399.      s           Toggle. Audio Volume(MUTE). on/off.
  400.  
  401.      8           Toggle. Main Speaker. on/off.
  402.  
  403.      9           Toggle. Headphones. on/off.
  404. 2 MOUSE_BUTTONS
  405.      Once the animation is up and running the mouse buttons  have
  406.      the following functions.
  407.  
  408.      <Left_Button>
  409.            Single step back one frame.
  410.  
  411.      <Middle_Button>
  412.            Toggle. starts/stops animation.
  413.  
  414.      <Right_Button>
  415.            Single step forward one frame.
  416. 2 BUFFERING,_PIXMAPS,_and_READ_FROM_FILE_Options
  417. XAnim by default will read the entire animation into memory. DL, PFX,
  418. Moviesetter, GIF or URT RLE type animations are always uncompressed and
  419. stored in memory as individual images. 
  420.  
  421. For the AVI, QT, IFF, FLI/FLC, JPEG, MPEG and DL animations, only the 
  422. compressed delta is stored. These deltas are then uncompressed each time 
  423. they need to be displayed. The buffer option(+b) may be used to potentially
  424. speed up playback by uncompressing and storing these images ahead of time. 
  425. But more memory is used up in the process.
  426.  
  427. When an XPutImage is called, the image typically gets copied twice, once
  428. to memory and then from there onto the display. A pixmap is directly
  429. copied onto the display without the first copy. This is why it is 
  430. sometimes much faster to use the pixmap option(+p).  Each image isn't
  431. converted into a pixmap until the first time it is displayed. This is why
  432. the first loop of an animation using this option is sometimes slower than
  433. subsequent loops. While the pixmap option may improve playback speed, it
  434. will slow things down if on-the-fly scaling needs to be performed. This is
  435. because XAnim no longer has direct access to the image and needs to get a
  436. copy of it before it can be scaled.
  437.  
  438. The read from file option(+f) causes XAnim not to store the compressed
  439. deltas in memory. Instead as each image is to be displayed, XAnim reads
  440. the corresponding compressed delta from the file, expands it and then
  441. displays it. While this can dramatically cut down on memory usage, the
  442. necessary reads from disk(or whatever) can slow down playback speed. XAnim
  443. still needs to allocate one to three image buffers depending on the type
  444. of animation and the scaling options used. This option is only supported
  445. for AVI, QT, FLI/FLC, JPEG, MPEG, DL and IFF animations. The BODY chunk 
  446. of IFF animations is not included in this. As a result, an IFF animation 
  447. that is made up of several BODY chunks will not currently benefit from 
  448. this option.
  449. 2 SCALING_Options
  450. There are two sets of scaling options. One set, the display scaling
  451. factors, affects the size of the animation as it is displayed. The other
  452. set, the buffer scaling factors, affect the size of the images as they are
  453. stored in memory(buffered). The buffer scaling factors only affect
  454. animations that are buffered and can greatly increase or decrease memory
  455. usage.
  456.  
  457. These two sets are completely independent of each other. You can set the
  458. buffer scaling factors to 20 times the normal animation size and not
  459. affect the size at which that animation is displayed. The images are
  460. stored at 20 times the normal size(and at 400 times the memory usage), but
  461. then get scaled back down to normal size before being displayed. NOTE:
  462. that an animation must be buffered in order for the buffer scaling factors
  463. to have any affect on it. The display scaling factors affect all
  464. animations.
  465.  
  466. You can create pixellation like affects by buffering the animation at 1/8
  467. it's normal size, but keeping the display scaling factors at the original
  468. size. (IE "xanim +bSS0.125 anim.anim").
  469.  
  470. Many times it's faster to store and display an animation with large
  471. dimensions at half-size. The option "+bSS0.5C" or "+bSS0.5s0.5" both will
  472. accomplish this. To save memory, you could even store the animation at
  473. half size and yet display it at full size. "+bSS0.5" will accomplish this.
  474. 2 FORWARDS,_BACKWARDS_and_OPTIMIZATION
  475. Many type of animations(FLI/FLC/IFF/some AVI and QTs) are compressed with
  476. forward playback in mind only. Each delta only stores the difference
  477. between the current frame and the previous frame. As a results, most of
  478. these animations don't display correctly when played backwards. Even when
  479. buffered up, these may not work, since XAnim only stores the smallest
  480. rectangle that encompasses the changes from the previous frame. You can
  481. force XAnim to store the entire frame by specifying the "-o" option to
  482. turn this optimization off. This will most likely use more memory and slow
  483. down the animation, since more of the image needs to be stored and/or
  484. displayed.
  485. 2 COLOR_OPTIONS
  486. Most of this will be a TBD for a future rev and what's here might be
  487. sketchy, incomplete or just plain confusing.
  488.  
  489. TrueColor and DirectColor displays don't need to worry about most of these
  490. options, as the animations can be displayed in their original
  491. colors(ignoring monitor variations etc). However, TrueColor and
  492. DirectColor displays can't display animations that employ color cycling
  493. techniques where the colormap changes from frame to frame. DirectColor
  494. could potentially support this, but not TrueColor.
  495.  
  496. For the rest of the displays, the problem becomes matching the colors in
  497. the animations to the available colors of the Display. For most
  498. PseudoColor displays this means 256 colors. Many of which are already in
  499. use by various other programs. XAnim defaults to creating it's own
  500. colormap and using all the colors from that. The window manager then
  501. installs this new colormap, whenever the mouse pointer is inside the XAnim
  502. animation window(Sometimes a specific action is required to change the
  503. ColorMap Focus, like clicking in the window or pressing a specific key).
  504. In any case, this action usually causes all the other colors on the screen
  505. to be temporarily "messed-up" until the mouse is moved out of the
  506. animation window. The alternative, is to use the "+Cn" option. Now XAnim
  507. tries allocating all the colors it needs from the current colormap. If it
  508. can't get a certain color, then XAnim choose one that is "close" to this
  509. certain color. Close is completely arbitrary. The animation is now
  510. displayed in colors that are different than the original colors. This
  511. difference may or may not be noticeable.
  512.  
  513. Another big problem is when the animations are what I called TrueColor
  514. animations. Where each pixel is stored as RGB triplets. For example, AVI
  515.  16 bit CRAM animations. Each pixel has 5 bits of Red, 5 bits of Green and
  516.  5 bits of Blue info associated with it. This means there can be up to
  517.  32768 unique colors in each image. And on most PseudoColor displays we
  518. can only display 256 unique colors. Beside getting better displays, what
  519. can we do? XAnim defaults to truncating the RGB information from 555 to
  520. 332. That is to 3 bits of Red, 3 bits of Green and 2 bits of Blue. Less on
  521. Blue because the human eye is more sensitive to Red and Green than Blue.
  522. This 332 colormap happens to be 256 colors in size, which nicely fits in
  523. with our display. If our display only had 64 colors, then XAnim is smart
  524. enough to truncate things down to 222. Now the problem is the colors of
  525. the displayed anim are noticeably different than the original colors.
  526. Typically you can see color banding etc. While this is fine to get a feel
  527. for the animation, we can do better. One of the solutions XAnim currently
  528. offers is the "+bC1" option. What this does is choose the the best 256
  529. colors from the first image of the animation. Then each pixel of each
  530. subsequent image is remapped to one of these 256 colors. This takes up
  531. some CPU time up front and more memory since each image needs to be
  532. buffered, but results in a colors that are closer to the originals. 
  533. Another option, "+bCA", chooses the best 256 from each image, then 256
  534. colors from all these colormaps are chosen as the final colormap.  This is
  535. useful if the colors in the first image aren't representative of the rest
  536. of the animation. This can be very slow.  Another option that is
  537. supported, but not really optimized for yet is "+bC3dm". This causes XAnim
  538. to use a 332 colormap and then apply a Floyd-Steinberg dither algorithm to
  539. each image.  Currently this is very slow. Different dithers(like Ordered)
  540. and better optimizations might speed this up in future revs. In general,
  541. handling of TrueColor animations in XAnim needs to be improved.
  542.  
  543. Another scenario where colors need to be remapped, is when several images
  544. or animations with different colormaps need to be displayed. Changing the
  545. colormap usually results in an annoying flicker. One solution to this is
  546. to remap all of the images/animations to the same colormap. The "+Ca"
  547. option chooses the best colors from all the colormaps and then remaps all
  548. the images to it. The "+Cf" option, simply remaps everything to the first
  549. colormap. The "+Ch" option is useful when an animation's colormap
  550. specifies a lot of colors that aren't used. XAnim looks through each
  551. buffered image of the animation and makes a histogram of the useage of
  552. each color. This information is then used to weedout unused or rarely used
  553. colors.
  554. 2 QUICKTIME_ANIMATIONS
  555. Quicktime animations are usually stored in two separate files. One is call
  556. a data fork and ends with a ".data". The other is a resource fork and ends
  557. in a ".rsrc". Sometimes these animations are in a "flattened/merged fork"
  558. format, where everything is put into one file. There's no standard naming 
  559. format for these types of files.
  560.  
  561. For example, if you have a quicktime animation made up of two files named:
  562. "spin.rsrc" and "spin.data", you can display them using Xanim with either
  563. of the following commands "xanim spin" or "xanim spin.rsrc". XAnim is
  564. smart enough to add/modfiy the ".rsrc" and ".data" endings as needed.
  565.  
  566. If you use AUFS from the Columbia Appletalk Package, then Macintosh files
  567. have their data fork stored in the expected place, and the resource fork
  568. is in a file with the same name in a .resource subdirectory. Therefore, if
  569. the data fork is in "spin", and the resource fork is in ".resource/spin",
  570. the movie can be displayed with "xanim spin".
  571.  
  572. For "flattened/merged fork" quicktime animations, you need to specify the
  573. entire file name.
  574.  
  575. NOTE: XAnim may not support all SMC or RPZA quicktime animations. It'll
  576. print "unknown code variation XX" to the screen as it encounters these and
  577. move on to the next image of that animation.
  578. 2 EXAMPLES
  579.   NOTE: since VMS is case insensitve, all options to xanim must be
  580.   enclosed in double quotes in order for them to be proper recognized.
  581.   Example:
  582.         xanim "+bCn" anim1 anim2
  583.  
  584.     To display a single animation with Audio:
  585.         xanim +Ae car_race.avi
  586.  
  587.     To display a audio animation on Sparc. main speakers off
  588.     and headphones on:
  589.         xanim +Aep1 -Ap0 car_race.avi
  590.  
  591.     To display a single animation:
  592.         xanim iff3.anim
  593.  
  594.     To display a nonlooping IFF animation:
  595.         xanim +c iff3.anim
  596.  
  597.     To display A.fli 3 times, B.anim and C.movie 2 times each and D.fli
  598.     once before repeating:
  599.         xanim -l3 A.fli -l2 B.anim C.movie -l1 D.fli
  600.  
  601.     To see A.anim real slow(2 seconds for each frame):
  602.         xanim +j2000 A.anim
  603.  
  604.     To display title image for a while then run an animation at
  605.     normal speed:
  606.         xanim +j2000 title.gif +j0 anim.gifanim
  607.  
  608. A series of GIF's can be displayed as:
  609.     xanim im_0.gif im_1.gif im_2.gif ... im_36.gif
  610.  or
  611.     xanim im_*.gif
  612.  or
  613.     xanim im.txt
  614.  or
  615.     xanim im.gifanim
  616.  
  617. where "im.txt" is a txt file (a list of images, see xanim.doc for more
  618. details) and "im.gifanim" is one gif file composed of "im_0.gif" through
  619. "im_36.gif" (see txtmerge to create a single gif file from a txt file).
  620. 2 Notes
  621. 3 X11_Notes-Server_Options
  622.    When XAnim opens the display it passes the argument list to X11 which
  623.    then filters off the arguments it recognizes. XAnim won't even see
  624.    these arguments(which is sometimes a problem).
  625.  
  626.    For instance
  627.        xa -geom =+100+100 skier.fli
  628.    will play the anim skier.fli at pos <100,100> on the X11 screen.  Or
  629.        xa -display nantucket:0.0 skier.fli
  630.    will display the anim skier.fli on the machine nantucket's display.
  631.  
  632.    Sometimes this is a problem, because a valid XAnim option is stripped
  633.    by the X11 server. For instance if +r was being stripped, then use ++r
  634.    instead. Same goes with -r. Use --r instead if you believe it's being
  635.    filtered by X11.
  636. 3 Machine_Specific_and_Compiler_Notes
  637.  Some PC's need you to uncomment the line below in Makefile.
  638.  #XA_INET_LIB = -linet
  639.  
  640.  Depending on your window manager(mwm,uwm,olwm,twm etc), you might
  641.  want to have XAnim do a XInstallColormap. This shouldn't be necessary
  642.  for most workstations and can cause core dumps on some PCs.
  643.  There are usually user selectable options for each window manager
  644.  that selects the colormap focus policy(pointer,fixed,explicit etc).
  645.  Use -DNO_INSTALL in Makefile if you DON't want XAnim to install
  646.  the colormap.
  647.  
  648.  Some X11's don't have support for multiple visuals.  An executable
  649.  compiled with such an X11 will not be able to correctly run on a
  650.  machine that does supports multiple visuals even if they're binary
  651.  compatible.
  652.  
  653.  Hugh D.R. Evans has supplied make.com, xanim.opt and added VMS defines
  654.  so that VMS users may compile and run XAnim. Rick Dyson has provided
  655.  the descript.mms file and some VMS fixes. John Kneitz has also
  656.  provide some VMS fixes and suggestions.
  657. 3 NOTES_ON_QUICKTIME_ANIMATIONS_WITH_XANIM
  658.   (these are just my notes and may contain some inconsistencies.
  659.    There's currently some question about the true meaning of
  660.    "flatten". It might just mean taking a quicktime file and
  661.    replacing a references to another files with those files
  662.    themselves.  But lately many people use it to mean collapsing
  663.    the *.data and *.rsrc forks into one *.data fork for export
  664.    to a non-mac computer. - Mark)
  665. 4 EXTRACTING_Quicktime_Animations
  666.     Typically you will obtain the quicktime animations that have
  667.     been archived and then binhex'd. If the file you have ends
  668.     in a .hqx, then you need to run hexbin on it ("hexbin anim.hqx").
  669.     This will create a *.bin file(not necessarily anim.bin, it
  670.     could be anything.bin. The actual name is contained within
  671.     the *.hqx file).  
  672.  
  673.     If the file you have ends in a .bin or you've just hexbin'd a file, 
  674.     now you need to unpack it. In other words extract the files that
  675.     are contained within it. These files can be programs/documents/
  676.     animations/images etc. They're not necessarily quicktime animations.
  677.  
  678.     There is a program called macunpack that should be used to
  679.     accomplish this. You need to use the -f option, I recommend
  680.     the -lv options as well. (ie "macunpack -flv file.bin")
  681.  
  682.     Macunpack doesn't support certain DiskDoubler or Stuffit Deluxe
  683.     archives. There is no unix/pc program that I know of that does(except 
  684.     for the Mac). In this case your only choice is to get a hold of a 
  685.     Macintosh computer and someone who knows how to use it and
  686.     hopefully some method of transferring files to/from it.
  687.  
  688.     Once you've unpacked everything, you should have three files,
  689.     a *.info, a *.rsrc and a *.data. You can delete the *.info file.
  690.     XAnim doesn't need or use it.
  691.  
  692.     The quicktime animation is made up of BOTH the *.rsrc and the
  693.     *.data files and therefore XAnim needs BOTH the *.rsrc and the 
  694.     *.data in order to recognize and display the animation.
  695.   
  696.     The only exception to this is if the animation has been "flattened".
  697.     Essentially, all that this means is that the .rsrc and .data files
  698.     were merged into one file for export to a non-mac computer.
  699.     This file doesn't have any real naming conventions, but it is
  700.     usually something like .mov, .mv, .qt, etc(it is never .bin or .hqx). 
  701.     And it is rarely .data. If XAnim can't play it, then it's 95%
  702.     likely to be a *.data fork(that's missing a *.rsrc fork) and not
  703.     a flattened quicktime animation.
  704.  
  705.     Macunpack and hexbin can be found in the macutil archive. They
  706.     are available at the following locations:
  707.         sumex-aim.stanford.edu:/info-mac/unix/macutil-20b1.shar
  708.         ftp.cwi.nl:/pub/macutil2.0b3.shar.Z
  709.         solaris.ims.ac.jp:/pub/unix/mac/macutil-20b1.shar
  710.     Use archie to find other sites.
  711.  
  712.     Here's a quick blurb on macutils from the readme.
  713.             o hexbin - a program to convert BinHex 4.0 to MacBinary;
  714.           it also converts uuencode (and UULite) files to their
  715.           native binary format; support for .dl, .hex, and .hcx
  716.           formats (all predecessors of BinHex 4.0) also exists
  717.             o macunpack - a program to unpack PackIt, StuffIt,
  718.           Diamond, Compactor/Compact Pro, most StuffIt Classic
  719.           and StuffIt Deluxe, DiskDoubler, Zoom and LHarc/MacLHa
  720.           archives.
  721.  
  722.           It also decodes BinHex 5.0, MacBinary, uuencode, and
  723.           UNIX compress (ie: .Z suffix) files (as well as variants
  724.           of compress implemented by various Macintosh compress
  725.           programs).
  726. 4 TRANSFERING_DIRECTLY_FROM_A_MACINTOSH
  727.     If you are transferring a quicktime animation directly from a 
  728.     Macintosh(ftp/fetch/gator/etc), you need to use the MacBinary mode.
  729.     This will archive all three resource forks(.info,.rsrc and .data) 
  730.     into a .bin file and transfer that. You must then use "macunpack -flv"
  731.     as described above.
  732.   
  733.     If you use Binary mode(as opposed to the MacBinary mode), ONLY the 
  734.     *.data file will be transferred. This *.data file is useless without
  735.     the *.rsrc file, unless it happens to be "flattened". If you don't
  736.     absolutely know this to be true, then use the MacBinary mode and 
  737.     extract with macunpack.
  738. 4 OTHER_PROGRAMS
  739.     mcvert is also capable of extracting the *.rsrc and *.data files
  740.     form a MacBinary file(*.bin). It doesn't support all of the
  741.     archival compression formats that macunpack does and I'm not
  742.     as familiar with it. Archie should be able to find it.
  743. 4 CREATING_A_QUICKTIME_FOR_EXPORT_ON_A_MACINTOSH
  744.     Movieconverter, part of Apple's Quicktime Starter Kit (a commercial
  745.     product) can do this.  Save the movie as BOTH "Make self-contained"
  746.     and "Playable on non-Apple computers." 
  747.